var timer, gainCodeNumber = 0; //定时器
$(function () {
    if ($('#loginDrag').length > 0) {
        common._drag("loginDrag"); // 拖拽
    }
    // common._drag("loginDrag");// 拖拽
    // loginFun._login1();//短信登录1
    // loginFun._login2();//密码登录2
    loginFun._areaTab(); // 区域号码切换
    // loginFun._gainCode();//获取验证码
    loginFun._loginTab(); //登录方式切换
    loginFun._visiblePass(); //密码可见
    loginFun._login_close(); //关闭登录
    loginFun._login_out(); //退出登录

    $('.header-right .no-login').click(function () {
        //点击登录弹框时重新唤起极验
        getGeetest();
    })
})
var loginFun = {
    _get_Geetest() {
        getGeetest();
    },
    _login1() { //短信登录    
        $('#login1').click(function () {
            if (telTest() == false) {
                return false;
            }

            if ($('#code').val() == '') {
                $('#code').focus();
                $('.code-warp').addClass('prompt-msg');
                return false;
            }

            //        if($('#code').val()!=code){
            //            $('#code').focus();
            //            $('.code-warp').addClass('prompt-msg');
            //            alert('验证输入错误')
            //            return false;
            //        }
            //        
            //        if(second==0){
            //            $('.gain-code').show().html('重新获取');
            //            $('.count-down').hide().html('60s');
            //            return false
            //        }
            var url = "/login/fastlogin";
            var phone = $("#tel").val();
            var code = $("#code").val();
            var prefix = $("#login_areacode").text();
            prefix = prefix.replace(/\+/g, "");
            phone = prefix + '' + '|' + phone; //手机号前添加国际编号前缀

            $.ajax({
                url: url,
                type: 'post',
                async: false,
                data: {
                    'captcha_check': code,
                    'phone': phone
                },
                beforeSend: function () {
                    common._loadding();
                },
                complete: function () {
                    common._loaddingClose();
                },
                success: function (data) {
                    if (data.status == 'success') {
                        window.location.reload();
                    } else if (data.status == 'fail') {
                        alert(data.message);
                    } else {
                        alert('系统繁忙');
                    }
                }
            });

        })
    },
    _login2() { //密码登录    
        $('#login2').click(function () {
            if ($('#name').val() == '') {
                $('#name').focus();
                $('.name-warp').addClass('prompt-msg');
                return false;
            }
            if ($('#password').val() == '') {
                $('#password').focus();
                $('.password-warp').addClass('prompt-msg');
                return false;
            }

            var url = "/login/login";
            var phone = $("#name").val();
            var password = $("#password").val();
            $.ajax({
                url: url,
                type: 'post',
                async: false,
                data: {
                    "Login[identifier]": phone,
                    "Login[password]": password
                },
                beforeSend: function () {
                    common._loadding();
                },
                complete: function () {
                    common._loaddingClose();
                },
                success: function (data) {
                    if (data.status == 'success') {
                        window.location.reload();
                    } else if (data.status == 'fail') {
                        alert(data.message);
                    } else {
                        alert('系统繁忙');
                    }
                }
            });
        })
    },
    _gainCode() { // 获取验证码
        $('.gain-code').click(function () {
            second = 60;
            if (telTest() == false) {
                return false;
            }
            //发送获取验证码的请求
            var url = '/captcha';
            var phone = $("#tel").val();
            var get_code_flag = false;
            $.ajax({
                url: url,
                async: true,
                type: 'post',
                data: {
                    'authentication': phone,
                    'formName': 'fastlogin'
                },
                beforeSend: function () {
                    common._loadding();
                },
                complete: function () {
                    common._loaddingClose();
                },
                success: function (data) {
                    if (data.status == 'success') {
                        get_code_flag = true;
                    } else if (data.status == 'fail') {
                        alert(data.message);
                        return;
                    } else {
                        alert('系统繁忙');
                        return;
                    }
                }
            });

            if (get_code_flag) {
                $(this).hide();
                $('.count-down').show();
                timer = setInterval(() => {
                    second--;
                    $('.count-down').html(second + 's');
                    if (second == 0) {
                        clearInterval(timer);
                        $(this).show().html('重新获取');
                        $('.count-down').hide().html('60s');
                    }
                }, 1000);
            }
        })
    },
    _loginTab() { //登录方式切换
        var flag = true;
        $('.login-table').click(function () {
            if (flag) {
                clearInterval(timer);
                $('.gain-code').show();
                $('.count-down').hide();
                $('.count-down').hide().html('60s');
                $('.login-conten-1').hide();
                $('.login-conten-2').show();
                flag = false;
                $(this).html('使用短信登录')
            } else {
                $('.login-conten-1').show();
                $('.login-conten-2').hide();
                flag = true;
                $(this).html('使用密码登录')
            }
        })
    },
    _areaTab() { // 区域号码切换
        for (var i = 0; i < areaCode.items.length; i++) {
            if (i <= 10) {
                jQuery('.login-area-code .login-area-code-1 .common-area-code').append(` <li><span>${areaCode.items[i].country}</span><em>+${areaCode.items[i].mobile_prefix}</em></li>`)
            } else {
                jQuery('.login-area-code .login-area-code-1 .all-area-code').append(`<li><span>${areaCode.items[i].country}</span><em>+${areaCode.items[i].mobile_prefix}</em></li>`)
            }
        }
        $('.gain-area-code').click(function () {
            $('.login-area-code').toggleClass('display-block')
        })
        $('.login-area-code').on('click', '.login-area-code-1 ul li', function (event) {
            $('.login-area-code').removeClass('display-block');
            $('.gain-area-code').find('span').html($(this).find('em').html())
        })
    },
    _visiblePass() { //查看密码
        var flag = true;
        $('.visible-pass').click(function () {
            if (flag) {
                $('#password').attr('type', 'text');
                $(this).css({
                    'color': '#63B3E5'
                })
                flag = false;
            } else {
                $('#password').attr('type', 'password');
                $(this).css({
                    'color': '#BCBCBC'
                })
                flag = true;
            }

        })
    },
    _login_close() { //关闭登录按钮
        $('.login-close').click(function () {
            $('.login-warp').hide();
        })
    },
    _login_out() { //退出登录
        $("#loginout").click(function () {
            var url = '/login/loginout';
            $.ajax({
                url: url,
                async: true,
                type: 'post',
                beforeSend: function () {
                    common._loadding();
                },
                complete: function () {
                    common._loaddingClose();
                },
                success: function (data) {
                    if (data.status == 'success') {
                        window.location.reload();
                    } else if (data.status == 'fail') {
                        messageBox('warning', data.message);
                        return;
                    } else {
                        messageBox('warning', '系统繁忙');
                        return;
                    }
                }
            });
        });
    },

}
// 电话号码验证
var telTest = function () {
    if ($('#tel').val() == '') {
        $('#tel').focus();
        $('.tel-warp').addClass('prompt-msg')
        return false;
    }
    if (!(/^[0-9]\d{1,20}$/.test($('#tel').val()))) {
        $('#tel').val('');
        $('.tel-warp').addClass('prompt-msg');
        $('#tel').focus();
        alert("手机号码有误，请重填");
        return false;
    }
}


function GetCode() {
    second = 60;
    //发送获取验证码的请求
    var url = '/captcha';
    var phone = $("#tel").val();
    var get_code_flag = false;
    var prefix = $(".gain-area-code").text();
    prefix = prefix.replace(/\+/g, "");
    phone = prefix + '' + '|' + phone; //手机号前添加国际编号前缀
    $.ajax({
        url: url,
        async: false,
        type: 'post',
        data: {
            'authentication': phone,
            'formName': 'fastlogin'
        },
        beforeSend: function () {
            common._loadding();
        },
        complete: function () {
            common._loaddingClose();
        },
        success: function (data) {
            if (data.status == 'success') {
                get_code_flag = true;
            } else if (data.status == 'fail') {
                alert(data.message);
                return;
            } else {
                messageBox('warning', '系统繁忙');
                return;
            }
        }
    });

    if (get_code_flag) {
        $('.gain-code').hide();
        $('.count-down').show();
        timer = setInterval(() => {
            second--;
            $('.count-down').html(second + 's');
            if (second == 0) {
                clearInterval(timer);
                $('.gain-code').show().html('重新获取');
                $('.count-down').hide().html('60s');
            }
        }, 1000);

    }
}

function Login1(result, captchaObj) {
    console.log(result)
    if (result == undefined) {
        alert('验证码错误');
        return
    }
    var url = "/login/fastlogin";
    var phone = $("#tel").val();
    var code = $("#code").val();
    var prefix = $(".gain-area-code").text();
    prefix = prefix.replace(/\+/g, "");
    phone = prefix + '' + '|' + phone; //手机号前添加国际编号前缀
    $.ajax({
        url: url,
        type: 'post',
        async: false,
        data: {
            'captcha_check': code,
            'phone': phone,
            geetest_challenge: result.geetest_challenge,
            geetest_validate: result.geetest_validate,
            geetest_seccode: result.geetest_seccode
        },
        beforeSend: function () {
            common._loadding2();
        },
        complete: function () {
            common._loadding2Close();
        },
        success: function (data) {
            if (data.status == 'success') {
                window.location.reload();
            } else if (data.status == 'fail') {
                clearInterval(timer);
                $('.gain-code').show().html('重新获取');
                $('.count-down').hide().html('60s');
                alert(data.message);
                captchaObj.reset(); // 调用该接口进行重置
                common._loadding2Close();
            } else {
                messageBox('warning', '系统繁忙');
                common._loadding2Close();
            }
        }
    });
}


function Login2(result, captchaObj) {
    $.ajax({
        url: '/login/login',
        type: 'POST',
        dataType: 'json',
        data: {
            "identifier": $('#name').val(),
            "password": $('#password').val(),
            geetest_challenge: result.geetest_challenge,
            geetest_validate: result.geetest_validate,
            geetest_seccode: result.geetest_seccode
        },
        beforeSend: function () {
            common._loadding2();
        },
        complete: function () {
            // common._loadding2Close();
        },
        success: function (data, textStatus) {
            if (data.status == 'success') {
                window.location.reload();
            } else if (data.status == 'fail') {
                messageBox('warning', data.message);
                captchaObj.reset(); // 调用该接口进行重置
                common._loadding2Close();
            } else {
                messageBox('warning', '系统繁忙');
                captchaObj.reset(); // 调用该接口进行重置
                common._loadding2Close();
            }

        },
        error: function (jqXHR, error, errorThrown) {
            if (jqXHR.status == 460) {
                messageBox('warning', '账号或密码错误');
                captchaObj.reset(); // 调用该接口进行重置
                common._loadding2Close();
            }
        },
    });
}

var loginType;

function getGeetest() {
    var handler = function (captchaObj) {
        captchaObj.appendTo('.login-conten-1 .code-warp');
        var result;
        captchaObj.onReady(function () {
            $("#wait").hide();
        }).onSuccess(function () {
            result = captchaObj.getValidate();
            if (!result) {
                return alert('请完成验证');
            }
            if (loginType == 1) {
                GetCode();
            }
            if (loginType == 2) {
                Login2(result, captchaObj)
            }

        });
        //验证码登录
        $('#login1').click(function () {
            // 调用之前先通过前端表单校验
            if (telTest() == false) {
                return false;
            }
            if ($('#code').val() == '') {
                $('#code').focus();
                $('.code-warp').addClass('prompt-msg');
                return false;
            }
            Login1(result, captchaObj)

        });
        //密码登录
        var loginType;
        $('#login2').click(function () {
            loginType = 2;
            // 调用之前先通过前端表单校验
            if ($('#name').val() == '') {
                $('#name').focus();
                $('.name-warp').addClass('prompt-msg');
                return false;
            }
            if ($('#password').val() == '') {
                $('#password').focus();
                $('.password-warp').addClass('prompt-msg');
                return false;
            }
            captchaObj.verify();
        });
        //获取验证码
        $('.gain-code').click(function () {
            if (telTest() == false) {
                return false;
            }
            loginType = 1;
            captchaObj.verify();
        })
    };

    $.ajax({
        url: "/login/geetest?v=" + Math.random(), // 加随机数防止缓存
        type: "get",
        dataType: "json",
        success: function (data) {
            // console.log(data)
            // 调用 initGeetest 进行初始化
            // 参数1：配置参数
            // 参数2：回调，回调的第一个参数验证码对象，之后可以使用它调用相应的接口
            initGeetest({
                // 以下 4 个配置参数为必须，不能缺少
                gt: data.gt,
                challenge: data.challenge,
                offline: !data.success, // 表示用户后台检测极验服务器是否宕机
                new_captcha: data.new_captcha, // 用于宕机时表示是新验证码的宕机
                product: "bind", // 产品形式，包括：float，popup
                width: "300px",
                https: true

                // 更多配置参数说明请参见：http://docs.geetest.com/install/client/web-front/
            }, handler);
        }
    });
}